import '@/utils/request'
import service from '@/utils/request'
import { selectDataClient } from '@/utils/common'
// import qs from 'qs'
const {  httpGet, httpPost } = service

// 物资验收接口
const request = {
    // 获取机构下某币种的人民币汇率
    getRmbRate (params) {
        return httpGet({
            url: '/config/cy/getRmbRate',
            params
        })
    },
    //获取流程按钮显示状态
    getCurrentUnitInfo (params) {
        return httpPost({
            url: '/materialsettle/flowEngin/getCurrentUnitInfo',
            params
        })
    },

    // 物资验收基本信息新增保存
    saveGoodsCheckAdd (params) {
        return httpPost({
            url: '/materialsettle/acceptance/create',
            params
        })
    },

    // 物资验收基本信息修改保存
    saveGoodsCheckEdit (params) {
        return httpPost({
            url: '/materialsettle/acceptance/update',
            params
        })
    },

    // 物资验收编辑页获取基本信息
    getGoodsCheckbasicInfo (id) {
        return httpGet({
            url: '/materialsettle/acceptance/findById',
            params: {
                id
            }
        })
    },

    // 物资验收获取验收明细表格数据  (弹窗好了过后,需要放开注释的)
    getAcceptanceList (id) {
        // 最终需要调的验收明细接口
        return httpGet({
            url: '/materialsettle/acceptance/getListById',
            params: {
                id
            }
        })
    },

    // getAcceptanceList (params) {
    //     // 弹窗没有做好时需要调的接口,模拟获取验收明细表格数据  (弹窗好了过后  需要删除的)
    //     return httpGet({
    //         url: '/material/siteReceiving/listAcceptableDtlByOrgId',
    //         params
    //     })
    // },

    // 保存验收明细的数据
    saveAcceptanceData (params) {
        return httpPost({
            url: '/materialsettle/acceptance/updateList',
            params
        })
    },

    //物资验收获取服务费用表格数据  (弹窗好了过后,需要放开注释的)
    getServeList (id) {
        return httpGet({
            url: '/materialsettle/acceptance/getServiceFeeListById',
            params: {
                id
            }
        })
    },

    // getServeList (params) {
    //     return httpPost({
    //         url: '/outer/outer/list/outer',
    //         params
    //     })
    // },

    // 保存服务明细的数据
    saveServiceFeeData (params) {
        return httpPost({
            url: '/materialsettle/acceptance/updateServiceFeeList',
            params
        })
    },

    // 物资验收基本信息处选择供应商/验收明细处选择收料弹出弹窗选择数据
    getSourceList (data, dtlIds) {
        return selectDataClient({
            SelectServiceToken:
                    '/material/siteReceiving/listAcceptableDtlByOrgId', // 客户端对应方法名
            IsSingleMode: false, // 是否单选 true 单选 false 多选
            SelectedIDs: dtlIds, // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify({ businessType: data }), // 接口参数(name为模拟参数)
            Title: '选择明细' // 标题
        })

        // return httpGet({
        //     url: '/material/siteReceiving/listAcceptableDtlByOrgId',
        //     params: {
        //         businessType: data.businessType,
        //         orgId: data.orgId,
        //         parentId: '1509715375772332034',
        //         keyWord: '',
        //     }
        // })
    },
    // 获取币种
    getCurrency (billId) {
        return httpGet({
            url: '/material/siteReceiving/getSourceBillInfo',
            params: {
                billId
            }
        })
    },

    // 根据合同获取币种/税率等
    getcontractbasicInfo (contractId) {
        return httpGet({
            url: '/subcontract/thirdParty/getMaterialProcurementInfo',
            params: {
                contractId
            }
        })
    },

    // 获取零星采购计划的税率
    getTaxRate (billId) {
        return httpGet({
            url: '/material/sporadicPurchasePlan/getTaxRate',
            params: {
                billId
            }
        })
    },
    // 物资验收-服务费用:选择结算单位
    getBillingUnit (data, ids) {
        return selectDataClient({
            SelectServiceToken: 'GeneralSelectOuter', // 客户端对应方法名
            IsSingleMode: true, // 是否单选 true 单选 false 多选
            SelectedIDs: [ids], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(data),    // 接口参数(name为模拟参数)
            Title: '选择结算单位' // 标题
        }).then(res => {
            return res[0]
        })
    },
    // 物资验收-服务费用:选择合同
    getContract (orgId, contracted) {
        return  selectDataClient({
            SelectServiceToken: '/subcontract/thirdParty/getForMaterialSettlement', // 客户端对应方法名
            IsSingleMode: true, // 是否单选 true 单选 false 多选
            SelectedIDs: [JSON.stringify(contracted)], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(orgId),    // 接口参数(name为模拟参数)
            Title: '选择合同' // 标题
        }).then(res => {
            return res[0]
        })
    },
    // 物资验收-基本信息:选择验收人员
    getAcceptancerName () {
        return  selectDataClient({
            SelectServiceToken: '/hr/user/getUserUnderOrgPage', // 客户端对应方法名
            IsSingleMode: true, // 是否单选 true 单选 false 多选
            SelectedIDs: [], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            Title: '选择当前机构人员' // 标题
        }).then(res => {
            return res[0]
        })
    },

    // 提交审核
    commitAudit (params) {
        return httpPost({
            url: '/materialsettle/flowEngin/commit',
            params
        })
    },

    // 审核
    audit (params) {
        return httpPost({
            url: '/materialsettle/flowEngin/audit',
            params
        })
    },
    // 撤销审核
    undoAudit (params) {
        return httpPost({
            url: '/materialsettle/flowEngin/undoAudit',
            params
        })
    },
    // 作废
    nullify (params) {
        return httpPost({
            url: '/materialsettle/common/nullify',
            params
        })
    },
    // 删除
    deleteData (id) {
        return httpGet({
            url: '/materialsettle/acceptance/delete',
            params: {
                id
            }
        })
    },
    // 获取历史审核数据
    getAuditHistory (params) {
        return httpPost({
            url: '/materialsettle/flowEngin/getAuditHistory',
            params
        })
    },
    // 物资验收冲红单
    redSingle (billId) {
        return httpGet({
            url: '/materialsettle/acceptance/initRedBill',
            params: {
                billId
            }
        })
    },
    // 提交时验证是否存在暂估验收
    estimatedAcceptance (orgId, supplierId) {
        return httpGet({
            url: '/materialsettle/acceptance/CheckEstimationAcceptance',
            params: {
                orgId,
                supplierId
            }
        })
    },
    // 暂估验收冲冲红单
    estimatedAcceptanceRedSingle (orgId, supplierId) {
        return httpGet({
            url: '/materialsettle/acceptance/InitEstimationAcceptanceRedBill',
            params: {
                orgId,
                supplierId
            }
        })
    },

    // 已经做了结算的物资验收数据,不能再冲红单;
    // 月结后,月结区间内的验收单据不能冲红单
    isRedSingleFn (billId) {
        return httpGet({
            url: '/materialsettle/acceptance/canBeWriteOff',
            params: {
                billId
            }
        })
    }

}

export default request

